package com.dictionary.cn.action;

import java.util.List;

import com.dictionary.cn.core.DictionaryManager;
import com.dictionary.cn.core.dictionaryservice.dcitionarybean.Dictionary;
import com.dictionary.cn.core.util.DictionarySpringContextUtils;

public class DictionaryTLDFunction {

	/**
	 * 
	 * <p>
	 * 通过codeType和code获取一个字典想名称
	 * </p>
	 * @author Huxiaorui
	 * @date 2015年2月10日 下午3:18:55
	 * @return
	 */
	public static String getDictionaryValue(String type, Object key){
		return getDictionaryValue(type, key, "");
	}
	
	/**
	 * 
	 * <p>
	 * </p>
	 * @author Huxiaorui
	 * @date 2015年2月5日 下午6:15:46
	 * @param code
	 * @param typeCode
	 * @param defaultValye 默认值
	 * @return
	 */
	public static String getDictionaryValue(String type, Object key, String defaultValue){
		String result = null;
	    if(type != null && key != null){
	        result = getDicionaryService().getByKey(type, key, defaultValue);
	    }else{
	        result = defaultValue;
	    }
		return result;
	}
	
	/**
	 * 
	 * <p>
	 * 获取一个列表 默认启动过滤
	 * </p>
	 * @author xiaoruihu
	 * @date 2015-6-3 下午03:55:36
	 * @param type
	 * @return
	 */
	public static List<Dictionary> getDictionary(String type){
	    return getDicionaryService().getAll(type, true);
	}
	
	/**
	 * 
	 * <p>
	 * 生成optioon
	 * </p>
	 * @author xiaoruihu
	 * @date 2015-6-4 下午02:19:43
	 * @param type
	 * @param isDefaultFilter
	 * @param checkedKey 选中的option
	 * @return
	 */
	public static String generateOption(String type, Boolean isDefaultFilter, Object checkedKey){
	    
	    if(isDefaultFilter == null){
	        isDefaultFilter = false;
	    }
	    
	    StringBuilder sb = new StringBuilder();
	    List<Dictionary> list = getDicionaryService().getAll(type, isDefaultFilter);
	    if(checkedKey == null){
    	    for(Dictionary d : list){
    	        sb.append("<option value='" + d.getKey() + "'>" + d.getValue() + "</option>");
    	    }
	    }else{
	        String temp = checkedKey.toString();
	        for(Dictionary d : list){
	            if(d.getKey().equals(temp)){
	                sb.append("<option selected='selected' value='" + d.getKey() + "'>" + d.getValue() + "</option>"); 
	            }else{
	                sb.append("<option value='" + d.getKey() + "'>" + d.getValue() + "</option>");
	            }
            }
	    }
	    return sb.toString();
	}
	/**
	 * 
	 * <p>
	 * 这里缓存下
	 * </p>
	 * @author Huxiaorui
	 * @date 2015年2月5日 下午6:10:08
	 * @return
	 */
	private static DictionaryManager getDicionaryService(){
		return DictionarySpringContextUtils.getBean("dictionaryManager");
	}
	
}
